package cn.kt.test;

/**
 * Created by tao.
 * Date: 2021/9/3 15:39
 * 描述:  默认方法：
 * 接口支持申明带实现的方法，否则在项目中如果某个接口被很多类给实现，改动一个接口的方法，则实现它的类全部都要改变
 * 所以，Java8中引入了一种新的机制：接口支持申明带实现的方法（不需要实现类去实现的默认方法）。
 */
public class Demo6 {
    public static void main(String args[]) {
        Vehicle vehicle = new Car();
        vehicle.print();
    }

    interface Vehicle {
        default void print() {
            System.out.println("我是一辆车!");
        }

        static void blowHorn() {
            System.out.println("按喇叭!!!");
        }
    }

    interface FourWheeler {
        default void print() {
            System.out.println("我是一辆四轮车!");
        }
    }

    static class Car implements Vehicle, FourWheeler {
        public void print() {
            Vehicle.super.print();
            FourWheeler.super.print();
            Vehicle.blowHorn();
            System.out.println("我是一辆汽车!");
        }
    }
}


